package com.ssm.promotion.core.mydlbp_nsgaiii.util;

import com.ssm.promotion.core.entity.DLBPData;
import com.ssm.promotion.core.entity.ProductData;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * Create by whk0710 on 2/18/2019
 * DT随机生成 & 可行任务序列生成方法类 & 其他公共方法
 * */
public final class DTUtils {

    /**
     * 根据输入DLBP、产品的数据随机生成DT
     * @data dlbp的数据
     * @list 所有产品列表
     * @return 返会一个DT列表
     * todo
     * */
    public static Map<Integer,int[]> randomDTGeneration(DLBPData data, ArrayList<ProductData> list){

        Map<Integer,int[]> map = new HashMap<>();
        //获取产品数
        int model_num = 0;
        model_num = data.getProduct_num();

        for(int i = 0;i < model_num;i++){

        }

        return map;
    }

    /**
     * 根据输入的DT随机生成可行任务序列
     * @data dlbp的数据，只要其中的PA与SA
     * @list 所有产品列表，只要其中的B节点个数元素计算总任务数目，与part个数计算拆卸总任务数目?
     * @prob 每个任务的权重
     * @dts DT对象列表，用于保存所有产品的DT
     * @return 返回一个数组，为可行任务序列
     * todo
     * */
    public static int[] getFeasibleSeq(DLBPData data, ArrayList<ProductData> list,double[] prob, Map<Integer,int[]> dts){
        //完全拆卸所需任务数
        int nums = 0;

        for(int i = 0;i < list.size();i++){
            //计算完全拆卸所需任务数目
            //nums += list.get(i).getParts();
            nums -= 1;
        }

        int[] sat = new int[nums];

        return sat;
    }

}
